home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / gui / bgui11b.lha / AmigaE / bgui_macros.e next >
Encoding:
Text File  |  1994-12-25  |  34.2 KB  |  948 lines

  1. OPT MODULE
  2. OPT EXPORT
  3. OPT PREPROCESS
  4.  
  5. /*
  6. **      bgui_macros.e - AmigaE v3.1a macro definitions file.
  7. **
  8. **      (C) Copyright 1993-1994 Jaba Development.
  9. **      (C) Copyright 1993-1994 Jan van den Baard.
  10. **      All Rights Reserved.
  11. **
  12. **      A lot of these macros  depend in the 'tools/Boopsi.m'
  13. **      module of the AmigaE 3.0 distribution. Please include
  14. **      this module into your code.
  15. **/
  16.  
  17. /*****************************************************************************
  18.  *
  19.  *      General object creation macros.
  20.  */
  21. #define HGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ TAG_IGNORE, 0
  22. #define VGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ GROUP_STYLE, GRSTYLE_VERTICAL
  23. #define ButtonObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ TAG_IGNORE, 0
  24. #define ToggleObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ GA_TOGGLESELECT, TRUE
  25. #define CycleObject             BgUI_NewObjectA( BGUI_CYCLE_GADGET,     [ TAG_IGNORE, 0
  26. #define CheckBoxObject          BgUI_NewObjectA( BGUI_CHECKBOX_GADGET,  [ TAG_IGNORE, 0
  27. #define InfoObject              BgUI_NewObjectA( BGUI_INFO_GADGET,      [ TAG_IGNORE, 0
  28. #define StringObject            BgUI_NewObjectA( BGUI_STRING_GADGET,    [ TAG_IGNORE, 0
  29. #define PropObject              BgUI_NewObjectA( BGUI_PROP_GADGET,      [ TAG_IGNORE, 0
  30. #define IndicatorObject         BgUI_NewObjectA( BGUI_INDICATOR_GADGET, [ TAG_IGNORE, 0
  31. #define ProgressObject          BgUI_NewObjectA( BGUI_PROGRESS_GADGET,  [ TAG_IGNORE, 0
  32. #define SliderObject            BgUI_NewObjectA( BGUI_SLIDER_GADGET,    [ TAG_IGNORE, 0
  33. #define PageObject              BgUI_NewObjectA( BGUI_PAGE_GADGET,      [ TAG_IGNORE, 0
  34. #define MxObject                BgUI_NewObjectA( BGUI_MX_GADGET,        [ TAG_IGNORE, 0
  35. #define ListviewObject          BgUI_NewObjectA( BGUI_LISTVIEW_GADGET,  [ TAG_IGNORE, 0
  36. #define ExternalObject          BgUI_NewObjectA( BGUI_EXTERNAL_GADGET,  [ GA_LEFT, 0, GA_TOP, 0, GA_WIDTH, 0, GA_HEIGHT, 0
  37. #define SeperatorObject         BgUI_NewObjectA( BGUI_SEPERATOR_GADGET, [ TAG_IGNORE, 0
  38. #define WindowObject            BgUI_NewObjectA( BGUI_WINDOW_OBJECT,    [ TAG_IGNORE, 0
  39. #define FileReqObject           BgUI_NewObjectA( BGUI_FILEREQ_OBJECT,   [ TAG_IGNORE, 0
  40. #define CommodityObject         BgUI_NewObjectA( BGUI_COMMODITY_OBJECT, [ TAG_IGNORE, 0
  41.  
  42. #define EndObject               TAG_END ] )
  43.  
  44. /*****************************************************************************
  45.  *
  46.  *      Frames.
  47.  */
  48. #define ButtonFrame             FRM_TYPE, FRTYPE_BUTTON
  49. #define RidgeFrame              FRM_TYPE, FRTYPE_RIDGE
  50. #define DropBoxFrame            FRM_TYPE, FRTYPE_DROPBOX
  51. #define NeXTFrame               FRM_TYPE, FRTYPE_NEXT
  52. #define RadioFrame              FRM_TYPE, FRTYPE_RADIOBUTTON
  53. #define XenFrame                FRM_TYPE, FRTYPE_XEN_BUTTON
  54.  
  55. /* For clarity. */
  56. #define StringFrame             RidgeFrame
  57. #define MxFrame                 RadioFrame
  58.  
  59. #define FrameTitle(t)           FRM_TITLE, t
  60.  
  61. /* Built-in back fills */
  62. #define ShineRaster             FRM_BACKFILL, SHINE_RASTER
  63. #define ShadowRaster            FRM_BACKFILL, SHADOW_RASTER
  64. #define ShineShadowRaster       FRM_BACKFILL, SHINE_SHADOW_RASTER
  65. #define FillRaster              FRM_BACKFILL, FILL_RASTER
  66. #define ShineFillRaster         FRM_BACKFILL, SHINE_FILL_RASTER
  67. #define ShadowFillRaster        FRM_BACKFILL, SHADOW_FILL_RASTER
  68. #define ShineBlock              FRM_BACKFILL, SHINE_BLOCK
  69. #define ShadowBlock             FRM_BACKFILL, SHADOW_BLOCK
  70.  
  71. /*****************************************************************************
  72.  *
  73.  *      Vector images.
  74.  */
  75. #define GetPath                 VIT_BUILTIN, BUILTIN_GETPATH
  76. #define GetFile                 VIT_BUILTIN, BUILTIN_GETFILE
  77. #define CheckMark               VIT_BUILTIN, BUILTIN_CHECKMARK
  78. #define PopUp                   VIT_BUILTIN, BUILTIN_POPUP
  79. #define ArrowUp                 VIT_BUILTIN, BUILTIN_ARROW_UP
  80. #define ArrowDown               VIT_BUILTIN, BUILTIN_ARROW_DOWN
  81. #define ArrowLeft               VIT_BUILTIN, BUILTIN_ARROW_LEFT
  82. #define ArrowRight              VIT_BUILTIN, BUILTIN_ARROW_RIGHT
  83.  
  84. /*****************************************************************************
  85.  *
  86.  *      Group class macros.
  87.  */
  88. #define StartMember             GROUP_MEMBER
  89. #define EndMember               TAG_END, 0
  90. #define Spacing(p)              GROUP_SPACING, p
  91. #define HOffset(p)              GROUP_HORIZOFFSET, p
  92. #define VOffset(p)              GROUP_VERTOFFSET, p
  93. #define LOffset(p)              GROUP_LEFTOFFSET, p
  94. #define ROffset(p)              GROUP_RIGHTOFFSET, p
  95. #define TOffset(p)              GROUP_TOPOFFSET, p
  96. #define BOffset(p)              GROUP_BOTTOMOFFSET, p
  97. #define VarSpace(w)             GROUP_SPACEOBJECT, w
  98. #define EqualWidth              GROUP_EQUALWIDTH, TRUE
  99. #define EqualHeight             GROUP_EQUALHEIGHT, TRUE
  100.  
  101. /*****************************************************************************
  102.  *
  103.  *      Layout macros.
  104.  */
  105. #define FixMinWidth             LGO_FIXMINWIDTH, TRUE
  106. #define FixMinHeight            LGO_FIXMINHEIGHT, TRUE
  107. #define Weight(w)               LGO_WEIGHT, w
  108. #define FixWidth(w)             LGO_FIXWIDTH, w
  109. #define FixHeight(h)            LGO_FIXHEIGHT, h
  110. #define Align                   LGO_ALIGN, TRUE
  111. #define FixMinSize              FixMinWidth, FixMinHeight
  112. #define FixSize(w,h)            FixWidth(w), FixHeight(h)
  113. #define NoAlign                 LGO_NOALIGN, TRUE
  114.  
  115. /*****************************************************************************
  116.  *
  117.  *      Page class macros.
  118.  */
  119. #define PageMember              PAGE_MEMBER
  120.  
  121. /*****************************************************************************
  122.  *
  123.  *      "Quick" button creation macros.
  124.  */
  125. #define Button(label,id)\
  126.         ButtonObject,\
  127.                 LAB_LABEL,              label,\
  128.                 GA_ID,                  id,\
  129.                 FRM_TYPE,               FRTYPE_BUTTON,\
  130.         EndObject
  131.  
  132. #define KeyButton(label,id)\
  133.         ButtonObject,\
  134.                 LAB_LABEL,              label,\
  135.                 LAB_UNDERSCORE,         "_",\
  136.                 GA_ID,                  id,\
  137.                 FRM_TYPE,               FRTYPE_BUTTON,\
  138.         EndObject
  139.  
  140. #define Toggle(label,state,id)\
  141.         ToggleObject,\
  142.                 LAB_LABEL,              label,\
  143.                 GA_ID,                  id,\
  144.                 GA_SELECTED,            state,\
  145.                 FRM_TYPE,               FRTYPE_BUTTON,\
  146.         EndObject
  147.  
  148. #define KeyToggle(label,state,id)\
  149.         ToggleObject,\
  150.                 LAB_LABEL,              label,\
  151.                 LAB_UNDERSCORE,         "_",\
  152.                 GA_ID,                  id,\
  153.                 GA_SELECTED,            state,\
  154.                 FRM_TYPE,               FRTYPE_BUTTON,\
  155.         EndObject
  156.  
  157. #define XenButton(label,id)\
  158.         ButtonObject,\
  159.                 LAB_LABEL,              label,\
  160.                 GA_ID,                  id,\
  161.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  162.         EndObject
  163.  
  164. #define XenKeyButton(label,id)\
  165.         ButtonObject,\
  166.                 LAB_LABEL,              label,\
  167.                 LAB_UNDERSCORE,         "_",\
  168.                 GA_ID,                  id,\
  169.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  170.         EndObject
  171.  
  172. #define XenToggle(label,state,id)\
  173.         ToggleObject,\
  174.                 LAB_LABEL,              label,\
  175.                 GA_ID,                  id,\
  176.                 GA_SELECTED,            state,\
  177.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  178.         EndObject
  179.  
  180. #define XenKeyToggle(label,state,id)\
  181.         ToggleObject,\
  182.                 LAB_LABEL,              label,\
  183.                 LAB_UNDERSCORE,         "_",\
  184.                 GA_ID,                  id,\
  185.                 GA_SELECTED,            state,\
  186.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  187.         EndObject
  188. /*****************************************************************************
  189.  *
  190.  *      "Quick" cycle creation macros.
  191.  */
  192. #define Cycle(label,labels,active,id)\
  193.         CycleObject,\
  194.                 LAB_LABEL,              label,\
  195.                 GA_ID,                  id,\
  196.                 FRM_TYPE,               FRTYPE_BUTTON,\
  197.                 CYC_LABELS,             labels,\
  198.                 CYC_ACTIVE,             active,\
  199.         EndObject
  200.  
  201. #define KeyCycle(label,labels,active,id)\
  202.         CycleObject,\
  203.                 LAB_LABEL,              label,\
  204.                 LAB_UNDERSCORE,         "_",\
  205.                 GA_ID,                  id,\
  206.                 FRM_TYPE,               FRTYPE_BUTTON,\
  207.                 CYC_LABELS,             labels,\
  208.                 CYC_ACTIVE,             active,\
  209.         EndObject
  210.  
  211. #define XenCycle(label,labels,active,id)\
  212.         CycleObject,\
  213.                 LAB_LABEL,              label,\
  214.                 GA_ID,                  id,\
  215.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  216.                 CYC_LABELS,             labels,\
  217.                 CYC_ACTIVE,             active,\
  218.         EndObject
  219.  
  220. #define XenKeyCycle(label,labels,active,id)\
  221.         CycleObject,\
  222.                 LAB_LABEL,              label,\
  223.                 LAB_UNDERSCORE,         "_",\
  224.                 GA_ID,                  id,\
  225.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  226.                 CYC_LABELS,             labels,\
  227.                 CYC_ACTIVE,             active,\
  228.         EndObject
  229.  
  230. #define PopCycle(label,labels,active,id)\
  231.         CycleObject,\
  232.                 LAB_Label,              label,\
  233.                 GA_ID,                  id,\
  234.                 FRM_TYPE,               FRTYPE_BUTTON,\
  235.                 CYC_LABELS,             labels,\
  236.                 CYC_ACTIVE,             active,\
  237.                 CYC_POPUP,              TRUE,\
  238.         EndObject
  239.  
  240. #define KeyPopCycle(label,labels,active,id)\
  241.         CycleObject,\
  242.                 LAB_LABEL,              label,\
  243.                 LAB_UNDERSCORE,         "_",\
  244.                 GA_ID,                  id,\
  245.                 FRM_TYPE,               FRTYPE_BUTTON,\
  246.                 CYC_LABELS,             labels,\
  247.                 CYC_ACTIVE,             active,\
  248.                 CYC_POPUP,              TRUE,\
  249.         EndObject
  250.  
  251. #define XenPopCycle(label,labels,active,id)\
  252.         CycleObject,\
  253.                 LAB_LABEL,              label,\
  254.                 GA_ID,                  id,\
  255.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  256.                 CYC_LABELS,             labels,\
  257.                 CYC_ACTIVE,             active,\
  258.                 CYC_POPUP,              TRUE,\
  259.         EndObject
  260.  
  261. #define XenKeyPopCycle(label,labels,active,id)\
  262.         CycleObject,\
  263.                 LAB_LABEL,              label,\
  264.                 LAB_UNDERSCORE,         "_",\
  265.                 GA_ID,                  id,\
  266.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  267.                 CYC_LABELS,             labels,\
  268.                 CYC_ACTIVE,             active,\
  269.                 CYC_POPUP,              TRUE,\
  270.         EndObject
  271.  
  272. /*****************************************************************************
  273.  *
  274.  *      "Quick" checkbox creation macros.
  275.  */
  276. #define CheckBox(label,state,id)\
  277.         CheckBoxObject,\
  278.                 LAB_LABEL,              label,\
  279.                 GA_ID,                  id,\
  280.                 FRM_TYPE,               FRTYPE_BUTTON,\
  281.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  282.                 GA_SELECTED,            state,\
  283.         EndObject, FixMinSize
  284.  
  285. #define KeyCheckBox(label,state,id)\
  286.         CheckBoxObject,\
  287.                 LAB_LABEL,              label,\
  288.                 LAB_UNDERSCORE,         "_",\
  289.                 GA_ID,                  id,\
  290.                 FRM_TYPE,               FRTYPE_BUTTON,\
  291.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  292.                 GA_SELECTED,            state,\
  293.         EndObject, FixMinSize
  294.  
  295. #define XenCheckBox(label,state,id)\
  296.         CheckBoxObject,\
  297.                 LAB_LABEL,              label,\
  298.                 GA_ID,                  id,\
  299.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  300.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  301.                 GA_SELECTED,            state,\
  302.         EndObject, FixMinSize
  303.  
  304. #define XenKeyCheckBox(label,state,id)\
  305.         CheckBoxObject,\
  306.                 LAB_LABEL,              label,\
  307.                 LAB_UNDERSCORE,         "_",\
  308.                 GA_ID,                  id,\
  309.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  310.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  311.                 GA_SELECTED,            state,\
  312.         EndObject, FixMinSize
  313.  
  314. #define CheckBoxNF(label,state,id)\
  315.         CheckBoxObject,\
  316.                 LAB_LABEL,              label,\
  317.                 GA_ID,                  id,\
  318.                 FRM_TYPE,               FRTYPE_BUTTON,\
  319.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  320.                 GA_SELECTED,            state,\
  321.         EndObject
  322.  
  323. #define KeyCheckBoxNF(label,state,id)\
  324.         CheckBoxObject,\
  325.                 LAB_LABEL,              label,\
  326.                 LAB_UNDERSCORE,         "_",\
  327.                 GA_ID,                  id,\
  328.                 FRM_TYPE,               FRTYPE_BUTTON,\
  329.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  330.                 GA_SELECTED,            state,\
  331.         EndObject
  332.  
  333. #define XenCheckBoxNF(label,state,id)\
  334.         CheckBoxObject,\
  335.                 LAB_LABEL,              label,\
  336.                 GA_ID,                  id,\
  337.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  338.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  339.                 GA_SELECTED,            state,\
  340.         EndObject
  341.  
  342. #define XenKeyCheckBoxNF(label,state,id)\
  343.         CheckBoxObject,\
  344.                 LAB_LABEL,              label,\
  345.                 LAB_UNDERSCORE,         "_",\
  346.                 GA_ID,                  id,\
  347.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  348.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  349.                 GA_SELECTED,            state,\
  350.         EndObject
  351.  
  352. /*****************************************************************************
  353.  *
  354.  *      "Quick" info object creation macros.
  355.  */
  356. #define InfoFixed(label,text,args,numlines)\
  357.         InfoObject,\
  358.                 LAB_LABEL,              label,\
  359.                 FRM_TYPE,               FRTYPE_BUTTON,\
  360.                 FRM_FLAGS,              FRF_RECESSED,\
  361.                 INFO_TEXTFORMAT,        text,\
  362.                 INFO_ARGS,              args,\
  363.                 INFO_MINLINES,          numlines,\
  364.                 INFO_FIXTEXTWIDTH,      TRUE,\
  365.         EndObject
  366.  
  367. #define InfoObj(label,text,args,numlines)\
  368.         InfoObject,\
  369.                 LAB_LABEL,              label,\
  370.                 FRM_TYPE,               FRTYPE_BUTTON,\
  371.                 FRM_FLAGS,              FRF_RECESSED,\
  372.                 INFO_TEXTFORMAT,        text,\
  373.                 INFO_ARGS,              args,\
  374.                 INFO_MINLINES,          numlines,\
  375.         EndObject
  376.  
  377. /*****************************************************************************
  378.  *
  379.  *      "Quick" string/integer creation macros.
  380.  */
  381. #define StringG(label,contents,maxchars,id)\
  382.         StringObject,\
  383.                 LAB_LABEL,              label,\
  384.                 FRM_TYPE,               FRTYPE_RIDGE,\
  385.                 STRINGA_TEXTVAL,        contents,\
  386.                 STRINGA_MAXCHARS,       maxchars,\
  387.                 GA_ID,                  id,\
  388.         EndObject
  389.  
  390. #define KeyString(label,contents,maxchars,id)\
  391.         StringObject,\
  392.                 LAB_LABEL,              label,\
  393.                 LAB_UNDERSCORE,         "_",\
  394.                 FRM_TYPE,               FRTYPE_RIDGE,\
  395.                 STRINGA_TEXTVAL,        contents,\
  396.                 STRINGA_MAXCHARS,       maxchars,\
  397.                 GA_ID,                  id,\
  398.         EndObject
  399.  
  400. #define TabString(label,contents,maxchars,id)\
  401.         StringObject,\
  402.                 LAB_LABEL,              label,\
  403.                 FRM_TYPE,               FRTYPE_RIDGE,\
  404.                 STRINGA_TEXTVAL,        contents,\
  405.                 STRINGA_MAXCHARS,       maxchars,\
  406.                 GA_ID,                  id,\
  407.                 GA_TABCYCLE,            TRUE,\
  408.         EndObject
  409.  
  410. #define TabKeyString(label,contents,maxchars,id)\
  411.         StringObject,\
  412.                 LAB_LABEL,              label,\
  413.                 LAB_UNDERSCORE,         "_",\
  414.                 FRM_TYPE,               FRTYPE_RIDGE,\
  415.                 STRINGA_TEXTVAL,        contents,\
  416.                 STRINGA_MAXCHARS,       maxchars,\
  417.                 GA_ID,                  id,\
  418.                 GA_TABCYCLE,            TRUE,\
  419.         EndObject
  420.  
  421. #define Integer(label,contents,maxchars,id)\
  422.         StringObject,\
  423.                 LAB_LABEL,              label,\
  424.                 FRM_TYPE,               FRTYPE_RIDGE,\
  425.                 STRINGA_LONGVAL,        contents,\
  426.                 STRINGA_MAXCHARS,       maxchars,\
  427.                 GA_ID,                  id,\
  428.         EndObject
  429.  
  430. #define KeyInteger(label,contents,maxchars,id)\
  431.         StringObject,\
  432.                 LAB_LABEL,              label,\
  433.                 LAB_UNDERSCORE,         "_",\
  434.                 FRM_TYPE,               FRTYPE_RIDGE,\
  435.                 STRINGA_LONGVAL,        contents,\
  436.                 STRINGA_MAXCHARS,       maxchars,\
  437.                 GA_ID,                  id,\
  438.         EndObject
  439.  
  440. #define TabInteger(label,contents,maxchars,id)\
  441.         StringObject,\
  442.                 LAB_LABEL,              label,\
  443.                 FRM_TYPE,               FRTYPE_RIDGE,\
  444.                 STRINGA_LONGVAL,        contents,\
  445.                 STRINGA_MAXCHARS,       maxchars,\
  446.                 GA_ID,                  id,\
  447.                 GA_TABCYCLE,            TRUE,\
  448.         EndObject
  449.  
  450. #define TabKeyInteger(label,contents,maxchars,id)\
  451.         StringObject,\
  452.                 LAB_LABEL,              label,\
  453.                 LAB_UNDERSCORE,         "_",\
  454.                 FRM_TYPE,               FRTYPE_RIDGE,\
  455.                 STRINGA_LONGVAL,        contents,\
  456.                 STRINGA_MAXCHARS,       maxchars,\
  457.                 GA_ID,                  id,\
  458.                 GA_TABCYCLE,            TRUE,\
  459.         EndObject
  460.  
  461. /*****************************************************************************
  462.  *
  463.  *      "Quick" scroller creation macros.
  464.  */
  465. #define HorizScroller(label,top,total,visible,id)\
  466.         PropObject,\
  467.                 LAB_LABEL,              label,\
  468.                 PGA_TOP,                top,\
  469.                 PGA_TOTAL,              total,\
  470.                 PGA_VISIBLE,            visible,\
  471.                 PGA_FREEDOM,            FREEHORIZ,\
  472.                 GA_ID,                  id,\
  473.                 PGA_ARROWS,             TRUE,\
  474.         EndObject
  475.  
  476. #define VertScroller(label,top,total,visible,id)\
  477.         PropObject,\
  478.                 LAB_LABEL,              label,\
  479.                 PGA_TOP,                top,\
  480.                 PGA_TOTAL,              total,\
  481.                 PGA_VISIBLE,            visible,\
  482.                 GA_ID,                  id,\
  483.                 PGA_ARROWS,             TRUE,\
  484.         EndObject
  485.  
  486. #define KeyHorizScroller(label,top,total,visible,id)\
  487.         PropObject,\
  488.                 LAB_LABEL,              label,\
  489.                 LAB_UNDERSCORE,         "_",\
  490.                 PGA_TOP,                top,\
  491.                 PGA_TOTAL,              total,\
  492.                 PGA_VISIBLE,            visible,\
  493.                 PGA_FREEDOM,            FREEHORIZ,\
  494.                 GA_ID,                  id,\
  495.                 PGA_ARROWS,             TRUE,\
  496.         EndObject
  497.  
  498. #define KeyVertScroller(label,top,total,visible,id)\
  499.         PropObject,\
  500.                 LAB_LABEL,              label,\
  501.                 LAB_UNDERSCORE,         "_",\
  502.                 PGA_TOP,                top,\
  503.                 PGA_TOTAL,              total,\
  504.                 PGA_VISIBLE,            visible,\
  505.                 GA_ID,                  id,\
  506.                 PGA_ARROWS,             TRUE,\
  507.         EndObject
  508.  
  509. /*****************************************************************************
  510.  *
  511.  *      "Quick" indicator creation macros.
  512.  */
  513. #define Indicator(min,max,level,just)\
  514.         IndicatorObject,\
  515.                 INDIC_MIN,              min,\
  516.                 INDIC_MAX,              max,\
  517.                 INDIC_LEVEL,            level,\
  518.                 INDIC_JUSTIFICATION,    just,\
  519.         EndObject
  520.  
  521. #define IndicatorFormat(min,max,level,just,format)\
  522.         IndicatorObject,\
  523.                 INDIC_MIN,              min,\
  524.                 INDIC_MAX,              max,\
  525.                 INDIC_LEVEL,            level,\
  526.                 INDIC_JUSTIFICATION,    just,\
  527.                 INDIC_FORMATSTRING,     format,\
  528.         EndObject
  529.  
  530. /*****************************************************************************
  531.  *
  532.  *      "Quick" progress creation macros.
  533.  */
  534. #define HorizProgress(label,min,max,done)\
  535.         ProgressObject,\
  536.                 LAB_LABEL,              label,\
  537.                 FRM_TYPE,               FRTYPE_BUTTON,\
  538.                 FRM_FLAGS,              FRF_RECESSED,\
  539.                 PROGRESS_MIN,           min,\
  540.                 PROGRESS_MAX,           max,\
  541.                 PROGRESS_DONE,          done,\
  542.         EndObject
  543.  
  544. #define VertProgress(label,min,max,done)\
  545.         ProgressObject,\
  546.                 LAB_LABEL,              label,\
  547.                 FRM_TYPE,               FRTYPE_BUTTON,\
  548.                 FRM_FLAGS,              FRF_RECESSED,\
  549.                 PROGRESS_MIN,           min,\
  550.                 PROGRESS_MAX,           max,\
  551.                 PROGRESS_DONE,          done,\
  552.                 PROGRESS_VERTICAL,      TRUE,\
  553.         EndObject
  554.  
  555. /*****************************************************************************
  556.  *
  557.  *      "Quick" slider creation macros.
  558.  */
  559. #define HorizSlider(label,min,max,level,id)\
  560.         SliderObject,\
  561.                 LAB_LABEL,              label,\
  562.                 SLIDER_MIN,             min,\
  563.                 SLIDER_MAX,             max,\
  564.                 SLIDER_LEVEL,           level,\
  565.                 GA_ID,                  id,\
  566.         EndObject
  567.  
  568. #define VertSlider(label,min,max,level,id)\
  569.         SliderObject,\
  570.                 LAB_LABEL,              label,\
  571.                 SLIDER_MIN,             min,\
  572.                 SLIDER_MAX,             max,\
  573.                 SLIDER_LEVEL,           level,\
  574.                 PGA_FREEDOM,            FREEVERT,\
  575.                 GA_ID,                  id,\
  576.         EndObject
  577.  
  578. #define KeyHorizSlider(label,min,max,level,id)\
  579.         SliderObject,\
  580.                 LAB_LABEL,              label,\
  581.                 LAB_UNDERSCORE,         "_",\
  582.                 SLIDER_MIN,             min,\
  583.                 SLIDER_MAX,             max,\
  584.                 SLIDER_LEVEL,           level,\
  585.                 GA_ID,                  id,\
  586.         EndObject
  587.  
  588. #define KeyVertSlider(label,min,max,level,id)\
  589.         SliderObject,\
  590.                 LAB_LABEL,              label,\
  591.                 LAB_UNDERSCORE,         "_",\
  592.                 SLIDER_MIN,             min,\
  593.                 SLIDER_MAX,             max,\
  594.                 SLIDER_LEVEL,           level,\
  595.                 PGA_FREEDOM,            FREEVERT,\
  596.                 GA_ID,                  id,\
  597.         EndObject
  598.  
  599. /*****************************************************************************
  600.  *
  601.  *      "Quick" mx creation macros.
  602.  */
  603. #define RightMx(label,labels,active,id)\
  604.         MxObject,\
  605.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  606.                 LAB_LABEL,              label,\
  607.                 MX_LABELS,              labels,\
  608.                 MX_ACTIVE,              active,\
  609.                 GA_ID,                  id,\
  610.         EndObject, FixMinSize
  611.  
  612. #define LeftMx(label,labels,active,id)\
  613.         MxObject,\
  614.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  615.                 LAB_LABEL,              label,\
  616.                 MX_LABELS,              labels,\
  617.                 MX_ACTIVE,              active,\
  618.                 MX_LABELPLACE,          PLACE_LEFT,\
  619.                 GA_ID,                  id,\
  620.         EndObject, FixMinSize
  621.  
  622. #define RightMxKey(label,labels,active,id)\
  623.         MxObject,\
  624.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  625.                 LAB_LABEL,              label,\
  626.                 LAB_UNDERSCORE,         "_",\
  627.                 MX_LABELS,              labels,\
  628.                 MX_ACTIVE,              active,\
  629.                 GA_ID,                  id,\
  630.         EndObject, FixMinSize
  631.  
  632. #define LeftMxKey(label,labels,active,id)\
  633.         MxObject,\
  634.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  635.                 LAB_LABEL,              label,\
  636.                 LAB_UNDERSCORE,         "_",\
  637.                 MX_LABELS,              labels,\
  638.                 MX_ACTIVE,              active,\
  639.                 MX_LABELPLACE,          PLACE_LEFT,\
  640.                 GA_ID,                  id,\
  641.         EndObject, FixMinSize
  642.  
  643. #define Tabs(label,labels,active,id)\
  644.         MxObject,\
  645.                 MX_TABSOBJECT,          TRUE,\
  646.                 LAB_LABEL,              label,\
  647.                 MX_LABELS,              labels,\
  648.                 MX_ACTIVE,              active,\
  649.                 GA_ID,                  id,\
  650.         EndObject, FixMinHeight
  651.  
  652. #define TabsKey(label,labels,active,id)\
  653.         MxObject,\
  654.                 MX_TABSOBJECT,          TRUE,\
  655.                 LAB_LABEL,              label,\
  656.                 LAB_UNDERSCORE,         '_',\
  657.                 MX_LABELS,              labels,\
  658.                 MX_ACTIVE,              active,\
  659.                 GA_ID,                  id,\
  660.         EndObject, FixMinHeight
  661.  
  662. #define TabsEqual(label,labels,active,id)\
  663.         MxObject,\
  664.                 GROUP_EQUALWIDTH,       TRUE,\
  665.                 MX_TABSOBJECT,          TRUE,\
  666.                 LAB_LABEL,              label,\
  667.                 MX_LABELS,              labels,\
  668.                 MX_ACTIVE,              active,\
  669.                 GA_ID,                  id,\
  670.         EndObject, FixMinHeight
  671.  
  672. #define TabsEqualKey(label,labels,active,id)\
  673.         MxObject,\
  674.                 GROUP_EQUALWIDTH,       TRUE,\
  675.                 MX_TABSOBJECT,          TRUE,\
  676.                 LAB_LABEL,              label,\
  677.                 LAB_UNDERSCORE,         '_',\
  678.                 MX_LABELS,              labels,\
  679.                 MX_ACTIVE,              active,\
  680.                 GA_ID,                  id,\
  681.         EndObject, FixMinHeight
  682.  
  683. /*****************************************************************************
  684.  *
  685.  *      "Quick" listview creation macros.
  686.  */
  687. #define StrListview(label,strings,id)\
  688.         ListviewObject,\
  689.                 LAB_LABEL,              label,\
  690.                 GA_ID,                  id,\
  691.                 LISTV_ENTRYARRAY,       strings,\
  692.         EndObject
  693.  
  694. #define StrListviewSorted(label,strings,id)\
  695.         ListviewObject,\
  696.                 LAB_LABEL,              label,\
  697.                 GA_ID,                  id,\
  698.                 LISTV_ENTRYARRAY,       strings,\
  699.                 LISTV_SORTENTRYARRAY,   TRUE,\
  700.         EndObject
  701.  
  702. #define ReadStrListview(label,strings)\
  703.         ListviewObject,\
  704.                 LAB_LABEL,              label,\
  705.                 LISTV_ENTRYARRAY,       strings,\
  706.                 LISTV_READONLY,         TRUE,\
  707.         EndObject
  708.  
  709. #define ReadStrListviewSorted(label,strings)\
  710.         ListviewObject,\
  711.                 LAB_LABEL,              label,\
  712.                 LISTV_ENTRYARRAY,       strings,\
  713.                 LISTV_SORTENTRYARRAY,   TRUE,\
  714.                 LISTV_READONLY,         TRUE,\
  715.         EndObject
  716.  
  717. #define MultiStrListview(label,strings,id)\
  718.         ListviewObject,\
  719.                 LAB_LABEL,              label,\
  720.                 GA_ID,                  id,\
  721.                 LISTV_ENTRYARRAY,       strings,\
  722.                 LISTV_MULTISELECT,      TRUE,\
  723.         EndObject
  724.  
  725. #define MultiStrListviewSorted(label,strings,id)\
  726.         ListviewObject,\
  727.                 LAB_LABEL,              label,\
  728.                 GA_ID,                  id,\
  729.                 LISTV_ENTRYARRAY,       strings,\
  730.                 LISTV_SORTENTRYARRAY,   TRUE,\
  731.                 LISTV_MULTISELECT,      TRUE,\
  732.         EndObject
  733.  
  734. /*****************************************************************************
  735.  *
  736.  *      "Quick" seperator bar creation macros.
  737.  */
  738. #define VertSeperator \
  739.         SeperatorObject,\
  740.         EndObject, FixMinWidth
  741.  
  742. #define VertThinSeperator \
  743.         SeperatorObject,\
  744.                 SEP_THIN,               TRUE,\
  745.         EndObject, FixMinWidth
  746.  
  747. #define HorizSeperator \
  748.         SeperatorObject,\
  749.                 SEP_HORIZ,              TRUE,\
  750.         EndObject, FixMinHeight
  751.  
  752. #define TitleSeperator(t)\
  753.         SeperatorObject,\
  754.                 SEP_HORIZ,              TRUE,\
  755.                 SEP_TITLE,              t,\
  756.         EndObject, FixMinHeight
  757.  
  758. #define HTitleSeperator(t)\
  759.         SeperatorObject,\
  760.                 SEP_HORIZ,              TRUE,\
  761.                 SEP_TITLE,              t,\
  762.                 SEP_HIGHLIGHT,          TRUE,\
  763.         EndObject, FixMinHeight
  764.  
  765. #define CTitleSeperator(t)\
  766.         SeperatorObject,\
  767.                 SEP_HORIZ,              TRUE,\
  768.                 SEP_TITLE,              t,\
  769.                 SEP_CENTERTITLE,        TRUE,\
  770.         EndObject, FixMinHeight
  771.  
  772. #define CHTitleSeperator(t)\
  773.         SeperatorObject,\
  774.                 SEP_HORIZ,              TRUE,\
  775.                 SEP_TITLE,              t,\
  776.                 SEP_HIGHLIGHT,          TRUE,\
  777.                 SEP_CENTERTITLE,        TRUE,\
  778.         EndObject, FixMinHeight
  779.  
  780. /*****************************************************************************
  781.  *
  782.  *      Base class method macros.
  783.  */
  784. #define AddMap(object,target,map)\
  785.         domethod( object, [ BASE_ADDMAP, target, map ] )
  786.  
  787. #define AddCondit(object,target,ttag,tdat,ftag,fdat,stag,sdat)\
  788.         domethod( object, [ BASE_ADDCONDITIONAL, target,\
  789.                   ttag, tdat,\
  790.                   ftag, fdat,\
  791.                   stag, sdat ] )
  792.  
  793. #define AddHook(object,hook)\
  794.         domethod( object, [ BASE_ADDHOOK, hook ] )
  795.  
  796. #define RemMap(object,target)\
  797.         domethod( object, [ BASE_REMMAP, target  ] )
  798.  
  799. #define RemCondit(object,target)\
  800.         domethod( object, [ BASE_REMCONDITIONAL, target ] )
  801.  
  802. #define RemHook( object,hook)\
  803.         domethod( object, [ BASE_REMHOOK, hook ] )
  804.  
  805. /*****************************************************************************
  806.  *
  807.  *      Listview class method macros.
  808.  */
  809. #define AddEntry(window,object,entry,how)\
  810.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  811.                              NIL, entry, how, 0 ] )
  812.  
  813. #define AddEntryVisible(window,object,entry,how)\
  814.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  815.                              NIL, entry, how, LVASF_MAKEVISIBLE ] )
  816.  
  817. #define AddEntrySelect(window,object,entry,how)\
  818.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  819.                              NIL, entry, how, LVASF_SELECT ] )
  820.  
  821. #define ClearList(window,object)\
  822.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_CLEAR, NIL ] )
  823.  
  824. #define FirstEntry(object)\
  825.         domethod( object, [ LVM_FIRSTENTRY, NIL, 0 ] )
  826.  
  827. #define FirstSelected(object)\
  828.         domethod( object, [ LVM_FIRSTENTRY, NIL, LVGEF_SELECTED ] )
  829.  
  830. #define LastEntry(object)\
  831.         domethod( object, [ LVM_LASTENTRY, NIL, 0 ] )
  832.  
  833. #define LastSelected(object)\
  834.         domethod( object, [ LVM_LASTENTRY, NIL, LVGEF_SELECTED ] )
  835.  
  836. #define NextEntry(object,last)\
  837.         domethod( object, [ LVM_NEXTENTRY, last, 0 ] )
  838.  
  839. #define NextSelected(object,last)\
  840.         domethod( object, [ LVM_NEXTENTRY, last, LVGEF_SELECTED ] )
  841.  
  842. #define PrevEntry(object,last)\
  843.         domethod( object, [ LVM_PREVENTRY, last, 0 ] )
  844.  
  845. #define PrevSelected(object,last)\
  846.         domethod( object, [ LVM_PREVENTRY, last, LVGEF_SELECTED ] )
  847.  
  848. #define RemoveEntry(object,entry)\
  849.         domethod( object, [ LVM_REMENTRY, NIL, entry ] )
  850.  
  851. #define RemoveEntryVisible(window,object,entry)\
  852.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMENTRY, NIL, entry ] )
  853.  
  854. #define RefreshList(window,object)\
  855.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REFRESH, NIL ] )
  856.  
  857. #define SortList(window,object)\
  858.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_SORT, NIL ] )
  859.  
  860. #define LockList(object)\
  861.         domethod( object, [ LVM_LOCKLIST, NIL ] )
  862.  
  863. #define UnlockList(window,object)\
  864.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_UNLOCKLIST, NIL ] )
  865.  
  866. #define MoveEntry(window,object,entry,dir)\
  867.         BgUI_DoGadgetMethodA( object, window, NULL, [ LVM_MOVE, NULL,\
  868.                              entry, dir ] )
  869.  
  870. #define MoveSelectedEntry(window,object,dir)\
  871.         BgUI_DoGadgetMethodA( object, window, NULL, [ LVM_MOVE, NULL,\
  872.                              NULL, dir ] )
  873.  
  874. /*****************************************************************************
  875.  *
  876.  *      Window class method macros.
  877.  */
  878. #define GadgetKey(wobj,gobj,key)\
  879.         domethod( wobj, [ WM_GADGETKEY, NIL, gobj, key ] )
  880.  
  881. #define WindowOpen(wobj)\
  882.         domethod( wobj, [ WM_OPEN ] )
  883.  
  884. #define WindowClose(wobj)\
  885.         domethod( wobj, [ WM_CLOSE ] )
  886.  
  887. #define WindowBusy(wobj)\
  888.         domethod( wobj, [ WM_SLEEP ] )
  889.  
  890. #define WindowReady(wobj)\
  891.         domethod( wobj, [ WM_WAKEUP ] )
  892.  
  893. #define HandleEvent(wobj)\
  894.         domethod( wobj, [ WM_HANDLEIDCMP ] )
  895.  
  896. #define DisableMenu(wobj,id,set)\
  897.         domethod( wobj, [ WM_DISABLEMENU, id, set ] )
  898.  
  899. #define CheckItem(wobj,id,set)\
  900.         domethod( wobj, [ WM_CHECKITEM, id, set ] )
  901.  
  902. #define MenuDisabled(wobj,id)\
  903.         domethod( wobj, [ WM_MENUDISABLED, id ] )
  904.  
  905. #define ItemChecked(wobj,id)\
  906.         domethod( wobj, [ WM_ITEMCHECKED, id ] )
  907.  
  908. #define GetAppMsg(wobj)\
  909.         domethod( wobj, [ WM_GETAPPMSG ] )
  910.  
  911. #define AddUpdate(wobj,id,target,map)\
  912.         domethod( wobj, [ WM_ADDUPDATE, id, target, map ] )
  913.  
  914. /*****************************************************************************
  915.  *
  916.  *      Commodity class method macros.
  917.  */
  918. #define AddHotkey(broker,desc,id,flags)\
  919.         domethod( broker, [ CM_ADDHOTKEY, desc, id, flags ] )
  920.  
  921. #define RemHotkey(broker,id)\
  922.         domethod( broker, [ CM_REMHOTKEY, id ] )
  923.  
  924. #define DisableHotkey(broker,id)\
  925.         domethod( broker, [ CM_DISABLEHOTKEY, id ] )
  926.  
  927. #define EnableHotKey(broker,id)\
  928.         domethod( broker, [ CM_ENABLEHOTKEY, id ] )
  929.  
  930. #define EnableBroker(broker)\
  931.         domethod( broker, [ CM_ENABLEBROKER ] )
  932.  
  933. #define DisableBroker(broker)\
  934.         domethod( broker, [ CM_DISABLEBROKER ] )
  935.  
  936. #define MsgInfo(broker,type,id,data)\
  937.         domethod( broker, [ CM_MSGINFO,\
  938.                             type,\
  939.                             id,\
  940.                             data ] )
  941.  
  942. /*****************************************************************************
  943.  *
  944.  *      FileReq class method macros.
  945.  */
  946. #define DoRequest(object)\
  947.         domethod( object, [ FRM_DOREQUEST ] )
  948.